rev(nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
rev1(0, nil) → 0
rev1(s(x), nil) → s(x)
rev1(x, cons(y, l)) → rev1(y, l)
rev2(x, nil) → nil
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
↳ QTRS
↳ Overlay + Local Confluence
rev(nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
rev1(0, nil) → 0
rev1(s(x), nil) → s(x)
rev1(x, cons(y, l)) → rev1(y, l)
rev2(x, nil) → nil
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
rev(nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
rev1(0, nil) → 0
rev1(s(x), nil) → s(x)
rev1(x, cons(y, l)) → rev1(y, l)
rev2(x, nil) → nil
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
rev(nil)
rev(cons(x0, x1))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
REV2(x, cons(y, l)) → REV2(y, l)
REV(cons(x, l)) → REV2(x, l)
REV(cons(x, l)) → REV1(x, l)
REV1(x, cons(y, l)) → REV1(y, l)
REV2(x, cons(y, l)) → REV(cons(x, rev2(y, l)))
rev(nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
rev1(0, nil) → 0
rev1(s(x), nil) → s(x)
rev1(x, cons(y, l)) → rev1(y, l)
rev2(x, nil) → nil
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
rev(nil)
rev(cons(x0, x1))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
REV2(x, cons(y, l)) → REV2(y, l)
REV(cons(x, l)) → REV2(x, l)
REV(cons(x, l)) → REV1(x, l)
REV1(x, cons(y, l)) → REV1(y, l)
REV2(x, cons(y, l)) → REV(cons(x, rev2(y, l)))
rev(nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
rev1(0, nil) → 0
rev1(s(x), nil) → s(x)
rev1(x, cons(y, l)) → rev1(y, l)
rev2(x, nil) → nil
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
rev(nil)
rev(cons(x0, x1))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
REV2(x, cons(y, l)) → REV2(y, l)
REV(cons(x, l)) → REV2(x, l)
REV(cons(x, l)) → REV1(x, l)
REV1(x, cons(y, l)) → REV1(y, l)
REV2(x, cons(y, l)) → REV(cons(x, rev2(y, l)))
rev(nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
rev1(0, nil) → 0
rev1(s(x), nil) → s(x)
rev1(x, cons(y, l)) → rev1(y, l)
rev2(x, nil) → nil
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
rev(nil)
rev(cons(x0, x1))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
REV1(x, cons(y, l)) → REV1(y, l)
rev(nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
rev1(0, nil) → 0
rev1(s(x), nil) → s(x)
rev1(x, cons(y, l)) → rev1(y, l)
rev2(x, nil) → nil
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
rev(nil)
rev(cons(x0, x1))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
REV1(x, cons(y, l)) → REV1(y, l)
cons2 > REV12
REV12: [1,2]
cons2: multiset
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
rev(nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
rev1(0, nil) → 0
rev1(s(x), nil) → s(x)
rev1(x, cons(y, l)) → rev1(y, l)
rev2(x, nil) → nil
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
rev(nil)
rev(cons(x0, x1))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
REV2(x, cons(y, l)) → REV2(y, l)
REV(cons(x, l)) → REV2(x, l)
REV2(x, cons(y, l)) → REV(cons(x, rev2(y, l)))
rev(nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
rev1(0, nil) → 0
rev1(s(x), nil) → s(x)
rev1(x, cons(y, l)) → rev1(y, l)
rev2(x, nil) → nil
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
rev(nil)
rev(cons(x0, x1))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev2(x0, nil)
rev2(x0, cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
REV2(x, cons(y, l)) → REV2(y, l)
REV(cons(x, l)) → REV2(x, l)
REV2(x, cons(y, l)) → REV(cons(x, rev2(y, l)))
cons1 > REV21 > REV1
cons1 > rev1 > 0 > REV1
nil > REV1
rev1: []
REV1: multiset
0: multiset
cons1: [1]
nil: multiset
REV21: [1]
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
rev2(x, nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
rev(nil) → nil
rev(cons(x, l)) → cons(rev1(x, l), rev2(x, l))
rev1(0, nil) → 0
rev1(s(x), nil) → s(x)
rev1(x, cons(y, l)) → rev1(y, l)
rev2(x, nil) → nil
rev2(x, cons(y, l)) → rev(cons(x, rev2(y, l)))
rev(nil)
rev(cons(x0, x1))
rev1(0, nil)
rev1(s(x0), nil)
rev1(x0, cons(x1, x2))
rev2(x0, nil)
rev2(x0, cons(x1, x2))